/* Araujo Heiker CI. 19726991
 * Goyo Willandher CI.20666542
 * Rodriguez Rafael CI.20009872
 * Williams Roman CI.20016812 
 * Morett Gilberth CI.20929667*/

package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.Vector;

import vista.VentanaCliente;
import vista.VentanaConsultaCliente;
import modelo.Cliente;
import modelo.Drogueria;

public class ControladorVentanaConsultaCliente implements ActionListener{
	
	private Drogueria drogueria;
	private VentanaConsultaCliente ventanaConsultaCliente;
	private VentanaCliente ventanaCliente;
	private ArrayList<Cliente> clientes;
	private Cliente cliente;
	
	public ControladorVentanaConsultaCliente(Drogueria drogueria){
		ventanaConsultaCliente = new VentanaConsultaCliente();
		ventanaConsultaCliente.setLocationRelativeTo(null);
		ventanaConsultaCliente.setVisible(true);
		ventanaConsultaCliente.agregarListener(this);

		this.drogueria = drogueria;
		this.cargarListado();
	}

	public ControladorVentanaConsultaCliente(ArrayList<Cliente> clientes,Cliente cliente,VentanaConsultaCliente ventanaConsultaCliente){
		
		this.clientes = clientes;
		this.cliente = cliente;
		this.ventanaConsultaCliente = ventanaConsultaCliente;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equalsIgnoreCase("Incluir")) {
			clickIncluirLinea();
			ventanaConsultaCliente.dispose();

		} else {
			if (e.getActionCommand().equalsIgnoreCase("Eliminar")) {
				if (drogueria.cantidadClientes()==0){
					ventanaConsultaCliente.mostrarMensaje("No existen Clientes para eliminar!");
				}else if(ventanaConsultaCliente.nroFilasSeleccionadas()==0){
					ventanaConsultaCliente.mostrarMensaje("Primero Debe Seleccionar el Clientes a eliminar");
				}else{
					clickEliminar();
				}
			}
			
		}
				if(e.getActionCommand().equalsIgnoreCase("Modificar")){
					if (drogueria.cantidadClientes()==0){
						ventanaConsultaCliente.mostrarMensaje("No existen Clientes para modificar!");
					}else if(ventanaConsultaCliente.nroFilasSeleccionadas()==0){
						ventanaConsultaCliente.mostrarMensaje("Primero Debe Seleccionar el Clientes a modificar");
					}else{
						String codigo = ventanaConsultaCliente.obtenerCodigoClienteFilaSeleccionada();
						new ControladorVentanaCliente(drogueria, "Modificar",codigo);
						ventanaConsultaCliente.dispose();
					}
				}
				
				
				
			

	}
		

	public void clickIncluirLinea() {

		try {

			ventanaConsultaCliente.dispose();
			this.finalize();
		} catch (Throwable e1) {
			e1.printStackTrace();
		} finally {
			new ControladorVentanaCliente(drogueria);

		}
	}

	

	public void clickEliminar() {
		
		
		String id = ventanaConsultaCliente.obtenerCodigoClienteFilaSeleccionada() ;
		ventanaConsultaCliente.eliminarFilaSeleccionada(ventanaConsultaCliente.getFilaSeleccionada());
		
		for(int i =0;i<drogueria.cantidadClientes();i++)
		{
			if(id.equals(drogueria.getUnCliente(i).getId()))
				drogueria.getUnCliente(i).setEstatus(Cliente.INACTIVO);
				
		}
		
	}
	

	
	
	public void cargarListado() {
		ArrayList<Cliente> clientes = drogueria.getClientes();
		for (int i = 0; i < drogueria.cantidadClientes(); i++) {
			Cliente cliente = clientes.get(i);

			if (cliente.getEstatus()== Cliente.INACTIVO) {
				continue;
			}
			Vector<String> datoCliente = new Vector<String>(5, 1);
			String id = cliente.getId();
			String nombre = cliente.getNombre();
			String telefono = cliente.getTelefono();
			String correo = cliente.getCorreo();
			String direccion = cliente.getDireccion();
			
			datoCliente.add(id);
			datoCliente.add(nombre);
			datoCliente.add(telefono);
			datoCliente.add(correo);
			datoCliente.add(direccion);

			ventanaConsultaCliente.agregarFilaLinea(datoCliente);
			
		}
		
	}
	
	
	
	
}